1
El poder de la introspección
AI035Lesson 15
00:00

En Ruby, el código no es solo un script estático—es una sistema vivo. Introspección es el superpoder que permite a los objetos tener 'conocimiento propio', transformándolos de cajas negras en mapas buscables de funcionalidad. Incluso valores inmediatos como los enteros pueden ser interrogados sobre su linaje y capacidades en tiempo de ejecución.

1. La interfaz viva

Al llamar obj.methods(regular=true), accedemos al vocabulario funcional completo de un objeto. Un objeto Range simple (r = 1..10) revela un impresionante 68 métodos distintos, reflejando su rica herencia de Object y el Enumerable mixino.

Barra lateral [A]ArrayAtan2AutoCargaClase Array < ObjectEnumerableFirma del método: Array#packEntrada: cadena de plantillaSalida: Cadena binaria

2. Descubrimiento dinámico

El respond_to? método actúa como guardián en tiempo de ejecución, permitiendo Tipado de pato. En lugar de preguntar '¿Qué eres?', preguntamos '¿Puedes hacer esto?'. Esta flexibilidad permite que los programas se adapten según las capacidades reales, como comprobar si una cadena responde a símbolos similares a asignación (=) o si un valor numérico soporta una consulta específica Consulta de jerarquía.

3. El puente de metadocumentación

Herramientas como RDoc utilizan estas características para generar diseños de listado alfabético y diagramas de bloques de firmas de métodos automáticamente. Al consultar constantes de módulo y Variables de instancia, los desarrolladores pueden navegar toda la estructura de espacios de nombres de forma programática, cerrando la brecha entre archivos de origen y la ejecución activa.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>